import {
  getToken
} from '../../../utils/getToken'
import {
  formateDate
} from '../../../utils/date'


Page({
  data: {
    // 手机号
    mobile: '',
    // 问题描述
    description: '',
    // 维修房屋id
    repairHouseId: '',
    // 维修房屋名称
    repairHouseName: '',
    // 维修项目id
    repairItemId: '',
    // 维修项目名称
    repairItemName: '',
    // 当前时间
    currentDate: Date.now(),
    // 维修时间
    appointment: '',
    isHouseLayerShow: false,
    isRepairLayerShow: false,
    isDateLayerShow: false,
    repairHouseList: [],
    repairItemList: [],
    attachment: [],
  },
  onLoad() {
    this.getRepairHouseList()
    this.getRepairItemList()
  },
  // 表单提交
  handleRepairSubmit(){
    console.log('准备校验的数据', this.data)
    // 表单提交校验
    if (this.validateRepairData(this.data)) {
      console.log('提交表单')
      wx.request({
        url: 'https://live-api.itheima.net/repair',
        method:'POST',
        header:{
          Authorization: 'Bearer ' + getToken()
        },
        data:{
          houseId:this.data.repairHouseId,
          repairItemId:this.data.repairItemId,
          mobile:this.data.mobile,
          appointment:this.data.appointment,
          description:this.data.description,
          attachment:this.data.attachment
        },
        success:(res)=>{
          console.log('提交报修res', res)
          if(res.data.code!==10000){
            return wx.showToast({
              title: res.data.message,
            })
          }
          wx.reLaunch({
            url: '/repair_pkg/pages/list/index',
          });
        }
      })
    }
  },
    // 表单校验函数
  validateRepairData(data) {
    console.log('开始校验', data)
    // 报修房屋校验
    if (!data.repairHouseId.trim()) {
      wx.showToast({
        title: '请选择报修房屋',
        icon: 'none'
      })
      return false
    }
    // 保修项目校验
    if (!data.repairItemId.trim()) {
      wx.showToast({
        title: '请选择报修项目',
        icon: 'none'
      })
      return false
    }
    // 手机号码校验
    const mobileReg = /^[1][3-8][0-9]{9}$/
    if (!mobileReg.test(data.mobile.trim())) {
      wx.showToast({
        title: '手机号格式错误',
        icon: 'none'
      })
      return false
    }
    // 预约日期校验
    if (!data.appointment.trim()) {
      wx.showToast({
        title: '请选择预约日期',
        icon: 'none'
      })
      return false
    }
    // 问题描述校验
    if (!data.description.trim()) {
      wx.showToast({
        title: '请填写问题描述',
        icon: 'none'
      })
      return false
    }
    // 校验通过
    console.log('校验通过')
    return true
  },
  // 图片选择完毕事件处理函数
  handleImageAfterRead(e) {
    console.log('图片上传完毕', e)
    wx.uploadFile({
      // 上传图片本地路径、
      filePath: e.detail.file.url,
      // 图片上传接口参数
      name: 'file',
      url: 'https://live-api.itheima.net/upload',
      header: {
        Authorization: 'Bearer ' + getToken()
      },
      success: (res) => {
        console.log('图片上传结果', res)
        const data = JSON.parse(res.data)
        if (data.code !== 10000) {
          return wx.showToast({
            title: data.message,
          })
        }
        const newList = [...this.data.attachment, data.data]
        this.setData({
          attachment: newList
        })
      }
    })
  },
  // 日期取消事件处理函数
  handleDateCancel() {
    this.setData({
      isDateLayerShow: false
    })
  },
  // 日期确认事件处理函数
  handleDateConfirm(e) {
    console.log(e.detail)
    this.setData({
      isDateLayerShow: false,
      appointment: formateDate(e.detail)
    })
  },
  // 报修房屋点击事件处理函数
  handleRepairHouseSelect(e) {
    console.log(e.detail)
    this.setData({
      repairHouseId: e.detail.id,
      repairHouseName: e.detail.name
    })
  },
  // 报修项目点击事件处理函数
  handleRepairItemSelect(e) {
    console.log(e.detail)
    this.setData({
      repairItemId: e.detail.id,
      repairItemName: e.detail.name
    })
  },
  // 获取报修项目列表数据
  getRepairItemList() {
    wx.request({
      url: 'https://live-api.itheima.net/repairItem',
      method: 'GET',
      header: {
        Authorization: 'Bearer ' + getToken()
      },
      success: (res) => {
        console.log('获取报修项目列表res', res)
        if (res.data.code !== 10000) {
          wx.showToast({
            title: res.data.message,
            icon: 'none'
          })
        }
        this.setData({
          repairItemList: res.data.data
        })
      }
    })
  },
  // 获取报修房屋列表数据
  getRepairHouseList() {
    wx.request({
      url: 'https://live-api.itheima.net/house',
      method: 'GET',
      header: {
        Authorization: 'Bearer ' + getToken()
      },
      success: (res) => {
        console.log('获取报修房屋列表res', res)
        if (res.data.code !== 10000) {
          wx.showToast({
            title: res.data.message,
            icon: 'none'
          })
        }
        this.setData({
          repairHouseList: res.data.data
        })
      }
    })
  },
  openHouseLayer() {
    this.setData({
      isHouseLayerShow: true
    });
  },
  closeHouseLayer() {
    this.setData({
      isHouseLayerShow: false
    });
  },
  openRepairLayer() {
    this.setData({
      isRepairLayerShow: true
    });
  },
  closeRepairLayer() {
    this.setData({
      isRepairLayerShow: false,
    });
  },

  openDateLayer() {
    this.setData({
      isDateLayerShow: true
    });
  },
  closeDateLayer() {
    this.setData({
      isDateLayerShow: false
    });
  }
});